#ifndef MODEL
#define MODEL

#include <string>
#include <vector>

using namespace std;

#include <base\vec2i.h>

#include <database\mysqlDatabase.h>
#include <modules\dataModule.h>

class model {

  vector<dataModule *> modules;

  string model_name;
  string data_storage_dir;

  mysqlDatabase db;

public:

  bool available(string _model_name, string _data_storage_dir);
  bool openModel(string _model_name, string _data_storage_dir);
  bool createModel(string _model_name, string _data_storage_dir);

  bool addUser(string name, string password);

  void addModule(dataModule * module);
  bool update();
  void close();

public:

  string getModelName();
  string getDataStorageDir();
  mysqlDatabase &getDB();

  model(string host="tcp://127.0.0.1:3306", string user="root", string pass="root");
  ~model();
};

#endif